1
ECEN 4532: DSP Laboratory
Professor Michael Perkins
Lab 4
March 5th, 2018
2
Contents
1. Introduction 3
2. Cosine Modulated Pseudo Quadrature Mirror Filter: Analysis 3
3. Cosine Modulated Pseudo Quadrature Mirror Filter: Synthesis 6
4. Conclusion 11
A. Figures 12
A.1 PQMF Figures 12
A.2 IPQMF Reconstruction 15
A.3 IPQMF Reconstruction: Fixed Delay 1024 Samples with Subbands 18
B. MATLAB Code 22
B.1 pqmf.m 22
B.2 ipqmf.m 23
B.3 lab4.m 26
B.4 setupFiles.m 27
B.5 loadwindow.m 27
3
1 Introduction
In this lab we are investigating the features of Layer III of MPEGG 1, also known as mp3. We will
first develop several subband filters to decompose and reconstruct the original audio signal. We
will then be using a polyphaser pseudo Quadrature Mirror Filter to deconstruct and eventually
reconstruct the original audio signal.
This is a practice used to reduce the amount of space a certain song takes up on a hard drive
while not compromising too much on the original audio signal. This is helpful for cloud based
audio options such as Pandora or Spotify, as they have a lot of data to process from the hundred
of thousands of songs in their libraries.
2 Cosine Modulated Pseudo Quadrature Mirror Filter:
Analysis
In this section we give the detailed mathematical description of the analysis filter banks. We will
manipulate the equations that combine convolution and decimation to arrive at a fast algorithm
to compute the output signal, s
k
, for each of the 32 subbands. In section 2.1 we further describe
the algorithmic implementation.
Consider the 512 tap filter h
k
; the output of the combined filtering and decimation for this filter
is given by
 


, (6)
where





 (7)
and p
0
is a prototype lowpass filter. The frequency response of h
k
is clear: the modulation of
p
0
[m] by 




shifts the lowpass filter’s frequency response to be centered around the
frequency (2k+1)π/64, and thus h
k
will become
a bandpass filter that selects frequencies around (2k +1)π/64, for k = 0,...31, with a nominal bandwidth
of π/32.
Equation (6) requires 32 × 512 = 16,384 combined multiplications and additions to compute the
32 outputs s
1
, …, s
32
for each block of 32 samples of the incoming signal x. In the following, we develop a
faster algorithm to compute this operation.
We start with (6) and decompose the summation as follows (think of this as letting m = 64q + r):
  
  
 





(8)
4
Next, we observe that since





(9)
we can write
  
  





(10)

  





 
 (11)
  







  







(12)
Let us define,







(13)
then

  
 





(14)
Using the notations of the standard, we further define






 (15)
then
  
 

(16)
and
 

 



(17)


 
   



(18)
As a result of expressing the convolution of equation (6) in the form of equation (18), we can
efficiently compute the sub band samples. For every n, we use the following three steps:
First, compute:
 
 
   
 (19)
Next, sum out the dependency on q via
 


(20)
5
Finally, compute one sample output for each subscribed via




(21)
This algorithm requires 2,560 multiplications and 2464 additions, but further speedup can be obtained
using a fast DCT algorithm to compute matrix-vector multiplication.
Assignment
1. Write the MATLAB pqmf that implements the analysis filter bank described in equations (19-21).
The function will have the following template:
[coefficients] = pqmf (input)
where input is a buffer that contains an integer number of frames of audio data. The output
array coefficients has the same size as the buffer input, and contains the subband coefficients.
The array coefficients should be organized in the following manner:
coefficients = [S
0
[0]… S
0
[N
s
1]
...S
31
[0] ... S
31
[N
s
-1]] (22)
where S
i
[k] is the coefficient from subband i = 0,...,31 computed for the packet k of 32 audio samples.
Also N
S
is the total number of packets of 32 samples:
(23)
The organization of coefficients is such that the low frequencies come first, and then the next higher
frequencies, and so on and so forth.
2. Analyze the first 5 seconds of the following tracks, and display the array coefficients,
sample1.wav,sample2.wav
sine1.wav,sine2.wav
handel.wav
cast.wav
gilberto.wav
Comment on the visual content of the arrays coefficients.
1) MATLAB code of the implementation of the pqmf function can be found at the end of the
report in section B.1.
2) Below are the coefficients of sample1.wav. It can be seen the lower end of the PQMF
coefficients are low, while they get larger as it approaches 5000. Listening to the song, this
makes sense as the piano lacks a substantial bass, but higher pitches are heard very easily.
6
Figures and comments for the other tracks are at the end of the report in section A.1.
3 Cosine Modulated Pseudo Quadrature Mirror Filter:
Synthesis
The synthesis, or reconstruction, from the coefficients is performed in a very similar
manner. The following equations yield the reconstruction of 32 audio samples from 32 subband
coefficients
for i = 1023 down to 64 do
v[i] = v[i 64] (24)
for i = 63 down to 0 do
(25)
for i = 0 to 7 do
for j = 0 to 31 do
7
u[64 i + j]= v[128 i + j] (26)
u[64 i + j + 32] = v[128 i + j + 96] (27)
for i = 0 to 511 do
w[i] = d[i] u[i], (28)
for j = 0 to 31 do
(29)
where






 (30)
Assignment
3. Write the MATLAB function ipqmf that implements the synthesis filter bank described in
equations (24-30). The function will have the following template:
[recons] = ipqmf (coefficients)
where coefficients is a buffer that contains the coefficients computed by pqmf. The output array
recons has the same size as the buffer coefficients, and contains the reconstructed audio data.
4. Reconstruct the first 5 seconds of the following tracks, and display the signal input. You should
observe that the reconstructed signal is slightly delayed. This is due to the fact that the
processing assumes that a buffer of 512 audio samples is immediately available.
sample1.wav
sample2.wav
sine1.wav,
sine2.wav
handle.wav
cast.wav
gilberto.wav
8
5. Compute the maximum error between the reconstructed signal and the original, taking into
account the delay. The error should be no more than 10
-5
. Explain how you estimate the delay.
3. Implementation of the ipqmf function can be found at the end of the report in section B.2.
4. The reconstruction of sample1.wav is shown below. As it can be seen there are some issues with
the reconstruction, but the general form seems to follow that of the original audio. After looking
at the results it can be seen there are slight differences in the pqmf plots. There seems to be a
slight delay between the original signal and reconstruction using this method. Figures for all the
other reconstructed tracks can be found at the end of the report in section A.2.
5. Calculation of the error can be found at the end of the report at the end of the MATLAB file
lab4.m in section B.3. While I tried to use a mathematical way for computing this delay, it
eventually was just easier to visually look at the delay in the pqmf plots to compute the error.
9
Assignment
6. Modify your code to reconstruct an audio signal using only a subset of bands. This is
the beginning of compression. Your function prototype should look like this:
[recons] = ipqmf (coefficients, thebands)
where thebands is an array of 32 integers, such that thebands[i] =1 if band i is used in
the reconstruction, and thebands[i] = 0 if band i is not used.
Experiment with the files
sample1.wav, sample2.wav
sine1.wav, sine2.wav
handel.wav
cast.wav
gilberto.wav and describe the outcome of the experiments, when certain
bands are not used to reconstruct. If you define the compression ratio as
number of bands used to reconstruct
, (32)
32
explain what is a good compression ratio, and a good choice of bands for each audio
sample. Note that the psychoacoustic model of MP3 performs this task automatically.
6. After modifying my ipqmf function that can be found in section B.2, I used bands 1 through 7
and computed the reconstruction. Interestingly, the error did not change much when looking at
the figures below. This means that the reconstruction is not great and we are unable to get
better results with this method of reconstruction. Further improvements could lead to better
results. The compression rate being used right now is 6:32, which could be considered good, but
doesnt really matter as the output is incorrect with this implementation. Plots of my ipqmf with
fixed delay and use of subbands can be found at the end of the report in section A.3.
It would be more beneficial to use more bands, but the compression would not be as ideal as we
not as much storage space would be saved, and it could just be better to use the original audio.
10
11
4 Conclusion
With this lab, we were able to analyze the Cosine Quadrature Mirror Filter and see how to
implement mp3. While the reconstruction wasnt ideal, further improvements could be made in
order to create a reconstruction with an acceptable compression rate. Even though this would not
be used in practice, it was a good start into creating a reconstruction of an original audio track
that uses less space.
12
A. Appendix Figures
A.1 PQMF Figures
13
14
15
In sample2.wav, the lower end of the spectrum is more substantial as there is a steady bass in the
background. Since the music is electronic, it lacks the overtones usually found in classical music. As we
go higher in the spectrum, the coefficients do not approach zero as quickly, likely due to the higher
order harmonics present in electronic music.
In the sine functions, it can be seen that the first sine wave as more coefficients on the lower end of the
spectrum.
Handel is similar to the first sample likely due to the fact of the vocals and the piano and violin playing in
the track.
Cast is quite interesting. While the other plots had a consistent decline as the coefficients decreased,
this tack is all over the place.
Finally in gilberto, there is a combination between handel and cast. The applause at the beginning adds
a lot of noise not seen in the other tracks.
A.2 IPQMF Reconstruction
16
17
18
A.3 IPQMF Reconstruction: Fixed Delay 1024 Samples with Subbands
19
20
21
22
B. MATLAB code
B.1 pqmf.m
function [coefficients] = pqmf(inputBuffer, ~)
%PQMF implements the analysis filter bank
%Takes an input "inputBuffer" that contains an number of frames
%of audio data. The output array "coefficients" as the same size
%as the buffer "inputBuffer", and contains the subband coefficients
filenameFlag = 0;
if(ischar(inputBuffer))
filenameFlag = 1;
filename = inputBuffer;
info = audioinfo(filename);
SampleTime = 5;
if(SampleTime > info.Duration)
SampleTime = info.Duration;
end
inputBuffer = audioread(filename, [1,(info.SampleRate*SampleTime)]);
inputBuffer = inputBuffer(find(inputBuffer~=0,1):end);
end
totalSamples = length(inputBuffer);
frameSize = 576;
nFrame = floor(totalSamples/frameSize);
inputBuffer = inputBuffer(1:(nFrame*frameSize));
[C,~] = loadwindow();
M=zeros(32,64);
for k=0:31
for r=0:63
M(k+1,r+1)=cos(((2*k+1)*(r-16)*pi)/64);
end
end
Ns=18*nFrame;
bufferSize=512;
y=zeros(1,64);
S=zeros(32,1);
coefficients=zeros(size(inputBuffer));
packet=1;
for frame = 1:nFrame % chunk the audio into blocks of 576 samples
offset = (frame -1)*frameSize+1; % absolute address of the frame
frameTemp=inputBuffer(offset:(offset+frameSize-1));
Buffer=zeros(size(C));
for index = 1:18 % 18 non overlapping blocks of size 32
Buffer(1:bufferSize-32)=Buffer(33:end);
newBlock=frameTemp(((index-1)*32+1):index*32); % 32 new samples
Buffer((bufferSize-31):end)=newBlock;
% process a block of 32 new input samples
% see flow chart in Fig. 2
Z=C.*Buffer; % Window by 512 Coefficients to produce vector
23
for i=0:63
y(i+1)=sum(Z(i+64*(0:7)+1)); % Partial Calculation
end
for i=0:31
S(i+1)=sum(M(i+1,:).*y); % Calculate 32 samples
end
% Frequency inversion
if(mod(index,2)==1)
channel=1:2:32;
S(channel)=-S(channel); % invert odd-numbered frequencies
end
% Spaced Ns apart
coefficients(packet+(Ns*(0:31)))=S; % Assign coefficients
packet=packet+1;
end % end index=1:18
end % end frame=1:nFrame
coefficients=coefficients/max(coefficients); % Normalize
if(nargin == 2)
h = figure;
[~, name, exit] = fileparts(filename);
plot(coefficients);
title([name, exit, 'pqmf', num2str(SampleTime) 'seconds']);
xlabel('Coefficient');
ylabel('Amplitude');
saveas(gca, [name, '_', num2str(SampleTime), 'sec.png']);
close(h);
end
end
B.2 ipqmf.m
function [ recons,difference ] = ipqmf( coefficients,thebands,filename,~)
%ipqmf Reconstructs the audio data
% "coefficients" is a buffer that contains the coefficients as computed
% by pqmf. The output array "recons" has the same size as the buffer
% "coefficients", and contains the reconstructed audio data.
%% Validate input
narginchk(1,4);
nargoutchk(0,2);
bandFlag=1;
if ischar(thebands)
filename=thebands;
bandFlag=0;
thebands=zeros(1,32);thebands(:)=1;
end
if(((nargout==2) && (~((nargin==4)||(nargin==3)))...
|| ((nargout~=2) && ((nargin==4)||((nargin==3)&&(~bandFlag))))))
24
error('Two outputs requires three or four inputs');
end
if ischar(thebands)
filename=thebands;
bandFlag=0;
thebands=zeros(1,32);thebands(:)=1;
end
frameSize=576;
if(mod(length(coefficients),frameSize)~=0)
error('ipqmf:invalidInputSize',...
['Invalid size for ''coefficients''.'...
' Length must be multiple of %d.'],frameSize);
end
%% Setup
audioSampleSize=32;
processingSize=64;
bufferSize=1024;
Ns=length(coefficients)/audioSampleSize;
% Because multiple of 576, Ns will be an integer
N=zeros(processingSize,audioSampleSize);
for i=0:processingSize-1
for k=0:audioSampleSize-1
N(i+1,k+1)=cos(((2*k+1)*(16+i)*pi)/64);
end
end
coefficients=buffer(coefficients,Ns); % Matrix is easier
[~,D] = loadwindow(); %C is the analysis window, but is not needed
%D is the synthesis window
%% Initialize variables
recons=zeros(audioSampleSize,Ns);
Buffer=zeros(bufferSize,1);
%% Do the math
for packet = 1:Ns
U=zeros(size(D));
S=coefficients(packet,:).*thebands; % extract subband
if (mod(packet,2) == 1) % Act on every other packet
channel = 1:2:32; % Invert every other coefficent
S(channel) = -S(channel); % Invert coefficent
end
%% Shift Buffer
Buffer((processingSize+1):bufferSize)=...
Buffer(1:(bufferSize-processingSize));
for i=0:processingSize-1
Buffer(i+1) = sum(N(i+1,:).*S);
end
%% DSP Math
j=0:(audioSampleSize-1);
for i=0:7
U(i*64+j+1) = Buffer(i*128+j+1); % DSP math
U(i*64+32+j+1) = Buffer(i*128+96+j+1); % DSP math
end
W=U.*D; % Windows by 512 coefficients
25
for j=0:audioSampleSize-1 % Calculate 32 samples
recons(j+1,packet) =(sum(W((j+1) + audioSampleSize*(0:15))));
end
end
% Output 32 reconstructed PCM samples
recons=recons(:); % Change back to vector
recons=recons/max(recons); % Normalize it
%% Plot the magic
if(nargin > 1)
h=figure;
hold on;
audio=audioread(filename);
audio=audio((length(audio)-length(recons)):end);
plot(audio(1:length(recons)));
xlabel('Samples');
ylabel('Amplitude');
[~,name,ext]=fileparts(filename);
plot(recons);
title([name, ext, ' ipqmf Reconstruction']);
legend('True audio','Reconstructed');
saveas(h,[name,'_ipqmf.png']);
close(h);
if((nargin == 4)|| ((nargin==3)&& (bandFlag==0)))
offset1=489;
h=figure;
hold on;
plot(audio);
xlabel('Samples');
ylabel('Amplitude');
plot(recons(offset1:end));
title({[name, ext, ' ipqmf Reconstruction'],'Delay Fixed'});
legend('True audio','Reconstructed (Fixed for delay)');
saveas(h,[name,'_D_ipqmf.png']);
close(h);
h=figure;
hold on;
plot(audio(1:1024));
plot(recons((1:1024)+offset1));
xlabel('Samples');
ylabel('Amplitude');
legend('True audio','Reconstructed (Fixed for delay)');
if(bandFlag)
title({[name, ext, ' ipqmf Reconstruction (1024 samples)'],...
'Delay Fixed', 'Specialized Subbands'});
saveas(h,[name,'_DS1024_ipqmf.png']);
else
title({[name, ext, ' ipqmf Reconstruction (1024 samples)'],...
'Delay Fixed'});
saveas(h,[name,'_D1024_ipqmf.png']);
end
26
close(h);
difference=sum(abs(audio(1:1024)-recons((1:1024)+offset1)));
end
end
end
B.3 lab4.m
clear filename tracks;
close all;
tracks=setupFiles();
[C,D] = loadwindow();
h=figure;
plot(C);
title('Analysis Window');
xlabel('Coefficient');
ylabel('Magnitude');
axis auto;
saveas(h,'analysisWindow.png');
close(h);
h=figure;
plot(D);
title('Synthesis Window');
xlabel('Coefficient');
ylabel('Magnitude');
axis auto;
saveas(h,'synthesisWindow.png');
close(h);
len=length(tracks);
totalError=zeros(len,1);
totalError1=zeros(len,1);
subbands=zeros(1,32);
subbands(1:6)=1;
parfor i=1:len
filename=tracks{i};
coefficients=pqmf(filename,1);
[~,totalError1(i)]=ipqmf(coefficients,subbands,filename,1);
[~,totalError(i)]=ipqmf(coefficients,filename,1);
end
songNames='';
for i=1:len
[~,name,~]=fileparts(tracks{i});
songNames=[songNames ' ' name];
end
songNames(1)=[];
h=figure;
bar(totalError);
27
title('Total Error');
xlabel('Track');
ylabel('Error Difference');
ax=gca;
axis([-inf inf 0 max(totalError)*1.025]);
ax.XTickLabel=strsplit(songNames);
saveas(h,'totalError.png');
close(h);
h=figure;
bar(totalError1);
title({'Total Error','Specialized Subbands'});
xlabel('Track');
ylabel('Error Difference');
ax=gca;
axis([-inf inf 0 max(totalError)*1.025]);
ax.XTickLabel=strsplit(songNames);
saveas(h,'totalError1.png');
close(h);
B.4 setupFiles.m
function [tracks] = setupFiles()
folderName='lab4tracks';
% feed into array
trackTemp=ls(fullfile(folderName,'*'));
if (isunix==0)
trackTemp(1:2,:)=[]; % first two will always be . and .. (in Windows)
end
[nSongs,~]=size(trackTemp);
if isunix
trackTemp=strsplit(trackTemp);
trackTemp(end)=[]; % last is always '' in unix
end
tracks=cellstr(trackTemp); % convert to cells
if(isunix==0)
% Windows does not include the full file
for i=1:nSongs
tracks{i}=fullfile(folderName,tracks{i});
end
end
end
B.5 loadwindow.m
function [C,D] = loadwindow
%
% C is the analysis window and D is the synthesis window
28
C = zeros (1,511); % this is a hack: the first
% entry is added last
D = zeros (1,512);
C( 1)=-0.000000477; C( 2)=-0.000000477; C( 3)=-
0.000000477 ;
C( 4)=-0.000000477; C( 5)=-0.000000477; C( 6)=-0.000000477; C( 7)=-
0.000000954 ;
C( 8)=-0.000000954; C( 9)=-0.000000954; C( 10)=-0.000000954; C( 11)=-
0.000001431 ;
C( 12)=-0.000001431; C( 13)=-0.000001907; C( 14)=-0.000001907; C( 15)=-
0.000002384 ;
C( 16)=-0.000002384; C( 17)=-0.000002861; C( 18)=-0.000003338; C( 19)=-
0.000003338 ;
C( 20)=-0.000003815; C( 21)=-0.000004292; C( 22)=-0.000004768; C( 23)=-
0.000005245 ;
C( 24)=-0.000006199; C( 25)=-0.000006676; C( 26)=-0.000007629; C( 27)=-
0.000008106 ;
C( 28)=-0.000009060; C( 29)=-0.000010014; C( 30)=-0.000011444; C( 31)=-
0.000012398 ;
C( 32)=-0.000013828; C( 33)=-0.000014782; C( 34)=-0.000016689; C( 35)=-
0.000018120 ;
C( 36)=-0.000019550; C( 37)=-0.000021458; C( 38)=-0.000023365; C( 39)=-
0.000025272 ;
C( 40)=-0.000027657; C( 41)=-0.000030041; C( 42)=-0.000032425; C( 43)=-
0.000034809 ;
C( 44)=-0.000037670; C( 45)=-0.000040531; C( 46)=-0.000043392; C( 47)=-
0.000046253 ;
C( 48)=-0.000049591; C( 49)=-0.000052929; C( 50)=-0.000055790; C( 51)=-
0.000059605 ;
C( 52)=-0.000062943; C( 53)=-0.000066280; C( 54)=-0.000070095; C( 55)=-
0.000073433 ;
C( 56)=-0.000076771; C( 57)=-0.000080585; C( 58)=-0.000083923; C( 59)=-
0.000087261 ;
C( 60)=-0.000090599; C( 61)=-0.000093460; C( 62)=-0.000096321; C( 63)=-
0.000099182 ;
C( 64)= 0.000101566; C( 65)= 0.000103951; C( 66)= 0.000105858; C( 67)=
0.000107288 ;
C( 68)= 0.000108242; C( 69)= 0.000108719; C( 70)= 0.000108719; C( 71)=
0.000108242 ;
C( 72)= 0.000106812; C( 73)= 0.000105381; C( 74)= 0.000102520; C( 75)=
0.000099182 ;
C( 76)= 0.000095367; C( 77)= 0.000090122; C( 78)= 0.000084400; C( 79)=
0.000077724 ;
C( 80)= 0.000069618; C( 81)= 0.000060558; C( 82)= 0.000050545; C( 83)=
0.000039577 ;
C( 84)= 0.000027180; C( 85)= 0.000013828; C( 86)=-0.000000954; C( 87)=-
0.000017166 ;
C( 88)=-0.000034332; C( 89)=-0.000052929; C( 90)=-0.000072956; C( 91)=-
0.000093937 ;
C( 92)=-0.000116348; C( 93)=-0.000140190; C( 94)=-0.000165462; C( 95)=-
0.000191212 ;
C( 96)=-0.000218868; C( 97)=-0.000247478; C( 98)=-0.000277042; C( 99)=-
0.000307560 ;
C(100)=-0.000339031; C(101)=-0.000371456; C(102)=-0.000404358; C(103)=-
0.000438213 ;
29
C(104)=-0.000472546; C(105)=-0.000507355; C(106)=-0.000542164; C(107)=-
0.000576973 ;
C(108)=-0.000611782; C(109)=-0.000646591; C(110)=-0.000680923; C(111)=-
0.000714302 ;
C(112)=-0.000747204; C(113)=-0.000779152; C(114)=-0.000809669; C(115)=-
0.000838757 ;
C(116)=-0.000866413; C(117)=-0.000891685; C(118)=-0.000915051; C(119)=-
0.000935555 ;
C(120)=-0.000954151; C(121)=-0.000968933; C(122)=-0.000980854; C(123)=-
0.000989437 ;
C(124)=-0.000994205; C(125)=-0.000995159; C(126)=-0.000991821; C(127)=-
0.000983715 ;
C(128)= 0.000971317; C(129)= 0.000953674; C(130)= 0.000930786; C(131)=
0.000902653 ;
C(132)= 0.000868797; C(133)= 0.000829220; C(134)= 0.000783920; C(135)=
0.000731945 ;
C(136)= 0.000674248; C(137)= 0.000610352; C(138)= 0.000539303; C(139)=
0.000462532 ;
C(140)= 0.000378609; C(141)= 0.000288486; C(142)= 0.000191689; C(143)=
0.000088215 ;
C(144)=-0.000021458; C(145)=-0.000137329; C(146)=-0.000259876; C(147)=-
0.000388145 ;
C(148)=-0.000522137; C(149)=-0.000661850; C(150)=-0.000806808; C(151)=-
0.000956535 ;
C(152)=-0.001111031; C(153)=-0.001269817; C(154)=-0.001432419; C(155)=-
0.001597881 ;
C(156)=-0.001766682; C(157)=-0.001937389; C(158)=-0.002110004; C(159)=-
0.002283096 ;
C(160)=-0.002457142; C(161)=-0.002630711; C(162)=-0.002803326; C(163)=-
0.002974033 ;
C(164)=-0.003141880; C(165)=-0.003306866; C(166)=-0.003467083; C(167)=-
0.003622532 ;
C(168)=-0.003771782; C(169)=-0.003914356; C(170)=-0.004048824; C(171)=-
0.004174709 ;
C(172)=-0.004290581; C(173)=-0.004395962; C(174)=-0.004489899; C(175)=-
0.004570484 ;
C(176)=-0.004638195; C(177)=-0.004691124; C(178)=-0.004728317; C(179)=-
0.004748821 ;
C(180)=-0.004752159; C(181)=-0.004737377; C(182)=-0.004703045; C(183)=-
0.004649162 ;
C(184)=-0.004573822; C(185)=-0.004477024; C(186)=-0.004357815; C(187)=-
0.004215240 ;
C(188)=-0.004049301; C(189)=-0.003858566; C(190)=-0.003643036; C(191)=-
0.003401756 ;
C(192)= 0.003134727; C(193)= 0.002841473; C(194)= 0.002521515; C(195)=
0.002174854 ;
C(196)= 0.001800537; C(197)= 0.001399517; C(198)= 0.000971317; C(199)=
0.000515938 ;
C(200)= 0.000033379; C(201)=-0.000475883; C(202)=-0.001011848; C(203)=-
0.001573563 ;
C(204)=-0.002161503; C(205)=-0.002774239; C(206)=-0.003411293; C(207)=-
0.004072189 ;
C(208)=-0.004756451; C(209)=-0.005462170; C(210)=-0.006189346; C(211)=-
0.006937027 ;
C(212)=-0.007703304; C(213)=-0.008487225; C(214)=-0.009287834; C(215)=-
0.010103703 ;
30
C(216)=-0.010933399; C(217)=-0.011775017; C(218)=-0.012627602; C(219)=-
0.013489246 ;
C(220)=-0.014358521; C(221)=-0.015233517; C(222)=-0.016112804; C(223)=-
0.016994476 ;
C(224)=-0.017876148; C(225)=-0.018756866; C(226)=-0.019634247; C(227)=-
0.020506859 ;
C(228)=-0.021372318; C(229)=-0.022228718; C(230)=-0.023074150; C(231)=-
0.023907185 ;
C(232)=-0.024725437; C(233)=-0.025527000; C(234)=-0.026310921; C(235)=-
0.027073860 ;
C(236)=-0.027815342; C(237)=-0.028532982; C(238)=-0.029224873; C(239)=-
0.029890060 ;
C(240)=-0.030526638; C(241)=-0.031132698; C(242)=-0.031706810; C(243)=-
0.032248020 ;
C(244)=-0.032754898; C(245)=-0.033225536; C(246)=-0.033659935; C(247)=-
0.034055710 ;
C(248)=-0.034412861; C(249)=-0.034730434; C(250)=-0.035007000; C(251)=-
0.035242081 ;
C(252)=-0.035435200; C(253)=-0.035586357; C(254)=-0.035694122; C(255)=-
0.035758972 ;
C(256)= 0.035780907; C(257)= 0.035758972; C(258)= 0.035694122; C(259)=
0.035586357 ;
C(260)= 0.035435200; C(261)= 0.035242081; C(262)= 0.035007000; C(263)=
0.034730434 ;
C(264)= 0.034412861; C(265)= 0.034055710; C(266)= 0.033659935; C(267)=
0.033225536 ;
C(268)= 0.032754898; C(269)= 0.032248020; C(270)= 0.031706810; C(271)=
0.031132698 ;
C(272)= 0.030526638; C(273)= 0.029890060; C(274)= 0.029224873; C(275)=
0.028532982 ;
C(276)= 0.027815342; C(277)= 0.027073860; C(278)= 0.026310921; C(279)=
0.025527000 ;
C(280)= 0.024725437; C(281)= 0.023907185; C(282)= 0.023074150; C(283)=
0.022228718 ;
C(284)= 0.021372318; C(285)= 0.020506859; C(286)= 0.019634247; C(287)=
0.018756866 ;
C(288)= 0.017876148; C(289)= 0.016994476; C(290)= 0.016112804; C(291)=
0.015233517 ;
C(292)= 0.014358521; C(293)= 0.013489246; C(294)= 0.012627602; C(295)=
0.011775017 ;
C(296)= 0.010933399; C(297)= 0.010103703; C(298)= 0.009287834; C(299)=
0.008487225 ;
C(300)= 0.007703304; C(301)= 0.006937027; C(302)= 0.006189346; C(303)=
0.005462170 ;
C(304)= 0.004756451; C(305)= 0.004072189; C(306)= 0.003411293; C(307)=
0.002774239 ;
C(308)= 0.002161503; C(309)= 0.001573563; C(310)= 0.001011848; C(311)=
0.000475883 ;
C(312)=-0.000033379; C(313)=-0.000515938; C(314)=-0.000971317; C(315)=-
0.001399517 ;
C(316)=-0.001800537; C(317)=-0.002174854; C(318)=-0.002521515; C(319)=-
0.002841473 ;
C(320)= 0.003134727; C(321)= 0.003401756; C(322)= 0.003643036; C(323)=
0.003858566 ;
C(324)= 0.004049301; C(325)= 0.004215240; C(326)= 0.004357815; C(327)=
0.004477024 ;
31
C(328)= 0.004573822; C(329)= 0.004649162; C(330)= 0.004703045; C(331)=
0.004737377 ;
C(332)= 0.004752159; C(333)= 0.004748821; C(334)= 0.004728317; C(335)=
0.004691124 ;
C(336)= 0.004638195; C(337)= 0.004570484; C(338)= 0.004489899; C(339)=
0.004395962 ;
C(340)= 0.004290581; C(341)= 0.004174709; C(342)= 0.004048824; C(343)=
0.003914356 ;
C(344)= 0.003771782; C(345)= 0.003622532; C(346)= 0.003467083; C(347)=
0.003306866 ;
C(348)= 0.003141880; C(349)= 0.002974033; C(350)= 0.002803326; C(351)=
0.002630711 ;
C(352)= 0.002457142; C(353)= 0.002283096; C(354)= 0.002110004; C(355)=
0.001937389 ;
C(356)= 0.001766682; C(357)= 0.001597881; C(358)= 0.001432419; C(359)=
0.001269817 ;
C(360)= 0.001111031; C(361)= 0.000956535; C(362)= 0.000806808; C(363)=
0.000661850 ;
C(364)= 0.000522137; C(365)= 0.000388145; C(366)= 0.000259876; C(367)=
0.000137329 ;
C(368)= 0.000021458; C(369)=-0.000088215; C(370)=-0.000191689; C(371)=-
0.000288486 ;
C(372)=-0.000378609; C(373)=-0.000462532; C(374)=-0.000539303; C(375)=-
0.000610352 ;
C(376)=-0.000674248; C(377)=-0.000731945; C(378)=-0.000783920; C(379)=-
0.000829220 ;
C(380)=-0.000868797; C(381)=-0.000902653; C(382)=-0.000930786; C(383)=-
0.000953674 ;
C(384)= 0.000971317; C(385)= 0.000983715; C(386)= 0.000991821; C(387)=
0.000995159 ;
C(388)= 0.000994205; C(389)= 0.000989437; C(390)= 0.000980854; C(391)=
0.000968933 ;
C(392)= 0.000954151; C(393)= 0.000935555; C(394)= 0.000915051; C(395)=
0.000891685 ;
C(396)= 0.000866413; C(397)= 0.000838757; C(398)= 0.000809669; C(399)=
0.000779152 ;
C(400)= 0.000747204; C(401)= 0.000714302; C(402)= 0.000680923; C(403)=
0.000646591 ;
C(404)= 0.000611782; C(405)= 0.000576973; C(406)= 0.000542164; C(407)=
0.000507355 ;
C(408)= 0.000472546; C(409)= 0.000438213; C(410)= 0.000404358; C(411)=
0.000371456 ;
C(412)= 0.000339031; C(413)= 0.000307560; C(414)= 0.000277042; C(415)=
0.000247478 ;
C(416)= 0.000218868; C(417)= 0.000191212; C(418)= 0.000165462; C(419)=
0.000140190 ;
C(420)= 0.000116348; C(421)= 0.000093937; C(422)= 0.000072956; C(423)=
0.000052929 ;
C(424)= 0.000034332; C(425)= 0.000017166; C(426)= 0.000000954; C(427)=-
0.000013828 ;
C(428)=-0.000027180; C(429)=-0.000039577; C(430)=-0.000050545; C(431)=-
0.000060558 ;
C(432)=-0.000069618; C(433)=-0.000077724; C(434)=-0.000084400; C(435)=-
0.000090122 ;
C(436)=-0.000095367; C(437)=-0.000099182; C(438)=-0.000102520; C(439)=-
0.000105381 ;
32
C(440)=-0.000106812; C(441)=-0.000108242; C(442)=-0.000108719; C(443)=-
0.000108719 ;
C(444)=-0.000108242; C(445)=-0.000107288; C(446)=-0.000105858; C(447)=-
0.000103951 ;
C(448)= 0.000101566; C(449)= 0.000099182; C(450)= 0.000096321; C(451)=
0.000093460 ;
C(452)= 0.000090599; C(453)= 0.000087261; C(454)= 0.000083923; C(455)=
0.000080585 ;
C(456)= 0.000076771; C(457)= 0.000073433; C(458)= 0.000070095; C(459)=
0.000066280 ;
C(460)= 0.000062943; C(461)= 0.000059605; C(462)= 0.000055790; C(463)=
0.000052929 ;
C(464)= 0.000049591; C(465)= 0.000046253; C(466)= 0.000043392; C(467)=
0.000040531 ;
C(468)= 0.000037670; C(469)= 0.000034809; C(470)= 0.000032425; C(471)=
0.000030041 ;
C(472)= 0.000027657; C(473)= 0.000025272; C(474)= 0.000023365; C(475)=
0.000021458 ;
C(476)= 0.000019550; C(477)= 0.000018120; C(478)= 0.000016689; C(479)=
0.000014782 ;
C(480)= 0.000013828; C(481)= 0.000012398; C(482)= 0.000011444; C(483)=
0.000010014 ;
C(484)= 0.000009060; C(485)= 0.000008106; C(486)= 0.000007629; C(487)=
0.000006676 ;
C(488)= 0.000006199; C(489)= 0.000005245; C(490)= 0.000004768; C(491)=
0.000004292 ;
C(492)= 0.000003815; C(493)= 0.000003338; C(494)= 0.000003338; C(495)=
0.000002861 ;
C(496)= 0.000002384; C(497)= 0.000002384; C(498)= 0.000001907; C(499)=
0.000001907 ;
C(500)= 0.000001431; C(501)= 0.000001431; C(502)= 0.000000954; C(503)=
0.000000954 ;
C(504)= 0.000000954; C(505)= 0.000000954; C(506)= 0.000000477; C(507)=
0.000000477 ;
C(508)= 0.000000477; C(509)= 0.000000477; C(510)= 0.000000477; C(511)=
0.000000477 ;
C = [0.0 C];
D(1 )= 0;
D(2 )= -0.000015259;
D(3 )= -0.000015259;
D(4 )= -0.000015259;
D(5 )= -0.000015259;
D(6 )= -0.000015259;
D(7 )= -0.000015259;
D(8 )= -0.000030518;
D(9 )= -0.000030518;
D(10 )=-0.000030518;
D(11 )=-0.000030518;
D(12 )=-0.000045776;
D(13 )=-0.000045776;
D(14 )=-0.000061035;
D(15 )=-0.000061035;
D(16 )=-0.000076294;
33
D(17 )=-0.000076294;
D(18 )=-0.000091553;
D(19 )=-0.000106812;
D(20 )=-0.000106812;
D(21 )=-0.000122070;
D(22 )=-0.000137329;
D(23 )=-0.000152588;
D(24 )=-0.000167847;
D(25 )=-0.000198364;
D(26 )=-0.000213623;
D(27 )=-0.000244141;
D(28 )=-0.000259399;
D(29 )=-0.000289917;
D(30 )=-0.000320435;
D(31 )=-0.000366211;
D(32 )=-0.000396729;
D(33 ) =-0.000442505;
D(34 ) =-0.000473022;
D(35 ) =-0.000534058;
D(36 ) =-0.000579834;
D(37 ) =-0.000625610;
D(38 ) =-0.000686646;
D(39 ) =-0.000747681;
D(40 ) =-0.000808716;
D(41 ) =-0.000885010;
D(42 ) =-0.000961304;
D(43 )=-0.001037598;
D(44 )=-0.001113892;
D(45 )=-0.001205444;
D(46 )=-0.001296997;
D(47 )=-0.001388550;
D(48 )=-0.001480103;
D(49 )=-0.001586914;
D(50 )=-0.001693726;
D(51 )=-0.001785278;
D(52 )=-0.001907349;
D(53 )=-0.002014160;
D(54 )=-0.002120972;
D(55 )=-0.002243042;
D(56 )=-0.002349854;
D(57 )=-0.002456665;
D(58 )=-0.002578735;
D(59 )=-0.002685547;
D(60 )=-0.002792358;
D(61 )=-0.002899170;
D(62 )=-0.002990723;
D(63 )=-0.003082275;
D(64 )=-0.003173828;
D(65 ) = 0.003250122;
D(66 ) = 0.003326416;
D(67 ) = 0.003387451;
D(68 ) = 0.003433228;
D(69 ) = 0.003463745;
D(70 ) = 0.003479004;
D(71 ) = 0.003479004;
D(72 ) = 0.003463745;
D(73 ) = 0.003417969;
34
D(74 )= 0.003372192;
D(75 )= 0.003280640;
D(76 )= 0.003173828;
D(77 )= 0.003051758;
D(78 )= 0.002883911;
D(79 )= 0.002700806;
D(80 )= 0.002487183;
D(81 )= 0.002227783;
D(82 )= 0.001937866;
D(83 )= 0.001617432;
D(84 )= 0.001266479;
D(85 )= 0.000869751;
D(86 )= 0.000442505;
D(87 )=-0.000030518;
D(88 )=-0.000549316;
D(89 )=-0.001098633;
D(90 )=-0.001693726;
D(91 )=-0.002334595;
D(92 )=-0.003005981;
D(93 )=-0.003723145;
D(94 )=-0.004486084;
D(95 )=-0.005294800;
D(96 )=-0.006118774;
D(97 ) =-0.007003784;
D(98 ) =-0.007919312;
D(99 ) =-0.008865356;
D(100) =-0.009841919;
D(101) =-0.010848999;
D(102) =-0.011886597;
D(103) =-0.012939453;
D(104) =-0.014022827;
D(105) =-0.015121460;
D(106)=-0.016235352;
D(107)=-0.017349243;
D(108)=-0.018463135;
D(109)=-0.019577026;
D(110)=-0.020690918;
D(111)=-0.021789551;
D(112)=-0.022857666;
D(113)=-0.023910522;
D(114)=-0.024932861;
D(115)=-0.025909424;
D(116)=-0.026840210;
D(117)=-0.027725220;
D(118)=-0.028533936;
D(119)=-0.029281616;
D(120)=-0.029937744;
D(121)=-0.030532837;
D(122)=-0.031005859;
D(123)=-0.031387329;
D(124)=-0.031661987;
D(125)=-0.031814575;
D(126)=-0.031845093;
D(127)=-0.031738281;
D(128)=-0.031478882;
D(129) = 0.031082153;
D(130) = 0.030517578;
35
D(131) = 0.029785156;
D(132) = 0.028884888;
D(133) = 0.027801514;
D(134) = 0.026535034;
D(135) = 0.025085449;
D(136) = 0.023422241;
D(137) = 0.021575928;
D(138)= 0.019531250;
D(139)= 0.017257690;
D(140)= 0.014801025;
D(141)= 0.012115479;
D(142)= 0.009231567;
D(143)= 0.006134033;
D(144)= 0.002822876;
D(145)=-0.000686646;
D(146)=-0.004394531;
D(147)=-0.008316040;
D(148)=-0.012420654;
D(149)=-0.016708374;
D(150)=-0.021179199;
D(151)=-0.025817871;
D(152)=-0.030609131;
D(153)=-0.035552979;
D(154)=-0.040634155;
D(155)=-0.045837402;
D(156)=-0.051132202;
D(157)=-0.056533813;
D(158)=-0.061996460;
D(159)=-0.067520142;
D(160)=-0.073059082;
D(161) =-0.078628540;
D(162) =-0.084182739;
D(163) =-0.089706421;
D(164) =-0.095169067;
D(165) =-0.100540161;
D(166) =-0.105819702;
D(167) =-0.110946655;
D(168) =-0.115921021;
D(169) =-0.120697021;
D(170)=-0.125259399;
D(171)=-0.129562378;
D(172)=-0.133590698;
D(173)=-0.137298584;
D(174)=-0.140670776;
D(175)=-0.143676758;
D(176)=-0.146255493;
D(177)=-0.148422241;
D(178)=-0.150115967;
D(179)=-0.151306152;
D(180)=-0.151962280;
D(181)=-0.152069092;
D(182)=-0.151596069;
D(183)=-0.150497437;
D(184)=-0.148773193;
D(185)=-0.146362305;
D(186)=-0.143264771;
D(187)=-0.139450073;
36
D(188)=-0.134887695;
D(189)=-0.129577637;
D(190)=-0.123474121;
D(191)=-0.116577148;
D(192)=-0.108856201;
D(193) = 0.100311279;
D(194) = 0.090927124;
D(195) = 0.080688477;
D(196) = 0.069595337;
D(197) = 0.057617187;
D(198) = 0.044784546;
D(199) = 0.031082153;
D(200) = 0.016510010;
D(201) = 0.001068115;
D(202)=-0.015228271;
D(203)=-0.032379150;
D(204)=-0.050354004;
D(205)=-0.069168091;
D(206)=-0.088775635;
D(207)=-0.109161377;
D(208)=-0.130310059;
D(209)=-0.152206421;
D(210)=-0.174789429;
D(211)=-0.198059082;
D(212)=-0.221984863;
D(213)=-0.246505737;
D(214)=-0.271591187;
D(215)=-0.297210693;
D(216)=-0.323318481;
D(217)=-0.349868774;
D(218)=-0.376800537;
D(219)=-0.404083252;
D(220)=-0.431655884;
D(221)=-0.459472656;
D(222)=-0.487472534;
D(223)=-0.515609741;
D(224)=-0.543823242;
D(225) =-0.572036743;
D(226) =-0.600219727;
D(227) =-0.628295898;
D(228) =-0.656219482;
D(229) =-0.683914185;
D(230) =-0.711318970;
D(231) =-0.738372803;
D(232) =-0.765029907;
D(233) =-0.791213989;
D(234)=-0.816864014;
D(235)=-0.841949463;
D(236)=-0.866363525;
D(237)=-0.890090942;
D(238)=-0.913055420;
D(239)=-0.935195923;
D(240)=-0.956481934;
D(241)=-0.976852417;
D(242)=-0.996246338;
D(243)=-1.014617920;
D(244)=-1.031936646;
37
D(245)=-1.048156738;
D(246)=-1.063217163;
D(247)=-1.077117920;
D(248)=-1.089782715;
D(249)=-1.101211548;
D(250)=-1.111373901;
D(251)=-1.120223999;
D(252)=-1.127746582;
D(253)=-1.133926392;
D(254)=-1.138763428;
D(255)=-1.142211914;
D(256)=-1.144287109;
D(257) = 1.144989014;
D(258) = 1.144287109;
D(259) = 1.142211914;
D(260) = 1.138763428;
D(261) = 1.133926392;
D(262) = 1.127746582;
D(263) = 1.120223999;
D(264) = 1.111373901;
D(265) = 1.101211548;
D(266)= 1.089782715;
D(267)= 1.077117920;
D(268)= 1.063217163;
D(269)= 1.048156738;
D(270)= 1.031936646;
D(271)= 1.014617920;
D(272)= 0.996246338;
D(273)= 0.976852417;
D(274)= 0.956481934;
D(275)= 0.935195923;
D(276)= 0.913055420;
D(277)= 0.890090942;
D(278)= 0.866363525;
D(279)= 0.841949463;
D(280)= 0.816864014;
D(281)= 0.791213989;
D(282)= 0.765029907;
D(283)= 0.738372803;
D(284)= 0.711318970;
D(285)= 0.683914185;
D(286)= 0.656219482;
D(287)= 0.628295898;
D(288)= 0.600219727;
D(289)= 0.572036743;
D(290)= 0.543823242;
D(291)= 0.515609741;
D(292)= 0.487472534;
D(293)= 0.459472656;
D(294)= 0.431655884;
D(295)= 0.404083252;
D(296)= 0.376800537;
D(297)= 0.349868774;
D(298)=0.323318481;
D(299)= 0.297210693;
D(300)= 0.271591187;
D(301)= 0.246505737;
38
D(302)= 0.221984863;
D(303)= 0.198059082;
D(304)= 0.174789429;
D(305)= 0.152206421;
D(306)= 0.130310059;
D(307)= 0.109161377;
D(308)= 0.088775635;
D(309)= 0.069168091;
D(310)= 0.050354004;
D(311)= 0.032379150;
D(312)= 0.015228271;
D(313)=-0.001068115;
D(314)=-0.016510010;
D(315)=-0.031082153;
D(316)=-0.044784546;
D(317)=-0.057617187;
D(318)=-0.069595337;
D(319)=-0.080688477;
D(320)=-0.090927124;
D(321) = 0.100311279;
D(322) = 0.108856201;
D(323) = 0.116577148;
D(324) = 0.123474121;
D(325) = 0.129577637;
D(326) = 0.134887695;
D(327) = 0.139450073;
D(328) = 0.143264771;
D(329) = 0.146362305;
D(330)= 0.148773193;
D(331)= 0.150497437;
D(332)= 0.151596069;
D(333)= 0.152069092;
D(334)= 0.151962280;
D(335)= 0.151306152;
D(336)= 0.150115967;
D(337)= 0.148422241;
D(338)= 0.146255493;
D(339)= 0.143676758;
D(340)= 0.140670776;
D(341)= 0.137298584;
D(342)= 0.133590698;
D(343)= 0.129562378;
D(344)= 0.125259399;
D(345)= 0.120697021;
D(346)= 0.115921021;
D(347)= 0.110946655;
D(348)= 0.105819702;
D(349)= 0.100540161;
D(350)= 0.095169067;
D(351)= 0.089706421;
D(352)= 0.084182739;
D(353) = 0.078628540;
D(354) = 0.073059082;
D(355) = 0.067520142;
D(356) = 0.061996460;
D(357) = 0.056533813;
D(358) = 0.051132202;
39
D(359) = 0.045837402;
D(360) = 0.040634155;
D(361) = 0.035552979;
D(362)= 0.030609131;
D(363)= 0.025817871;
D(364)= 0.021179199;
D(365)= 0.016708374;
D(366)= 0.012420654;
D(367)= 0.008316040;
D(368)= 0.004394531;
D(369)= 0.000686646;
D(370)=-0.002822876;
D(371)=-0.006134033;
D(372)=-0.009231567;
D(373)=-0.012115479;
D(374)=-0.014801025;
D(375)=-0.017257690;
D(376)=-0.019531250;
D(377)=-0.021575928;
D(378)=-0.023422241;
D(379)=-0.025085449;
D(380)=-0.026535034;
D(381)=-0.027801514;
D(382)=-0.028884888;
D(383)=-0.029785156;
D(384)=-0.030517578;
D(385) = 0.031082153;
D(386) = 0.031478882;
D(387) = 0.031738281;
D(388) = 0.031845093;
D(389) = 0.031814575;
D(390) = 0.031661987;
D(391) = 0.031387329;
D(392) = 0.031005859;
D(393) = 0.030532837;
D(394)= 0.029937744;
D(395)= 0.029281616;
D(396)= 0.028533936;
D(397)= 0.027725220;
D(398)= 0.026840210;
D(399)= 0.025909424;
D(400)= 0.024932861;
D(401)= 0.023910522;
D(402)= 0.022857666;
D(403)= 0.021789551;
D(404)= 0.020690918;
D(405)= 0.019577026;
D(406)= 0.018463135;
D(407)= 0.017349243;
D(408)= 0.016235352;
D(409)= 0.015121460;
D(410)= 0.014022827;
D(411)= 0.012939453;
D(412)= 0.011886597;
D(413)= 0.010848999;
D(414)= 0.009841919;
D(415)= 0.008865356;
40
D(416)= 0.007919312;
D(417) = 0.007003784;
D(418) = 0.006118774;
D(419) = 0.005294800;
D(420) = 0.004486084;
D(421) = 0.003723145;
D(422) = 0.003005981;
D(423) = 0.002334595;
D(424) = 0.001693726;
D(425) = 0.001098633;
D(426)= 0.000549316;
D(427)= 0.000030518;
D(428)=-0.000442505;
D(429)=-0.000869751;
D(430)=-0.001266479;
D(431)=-0.001617432;
D(432)=-0.001937866;
D(433)=-0.002227783;
D(434)=-0.002487183;
D(435)=-0.002700806;
D(436)=-0.002883911;
D(437)=-0.003051758;
D(438)=-0.003173828;
D(439)=-0.003280640;
D(440)=-0.003372192;
D(441)=-0.003417969;
D(442)=-0.003463745;
D(443)=-0.003479004;
D(444)=-0.003479004;
D(445)=-0.003463745;
D(446)=-0.003433228;
D(447)=-0.003387451;
D(448)=-0.003326416;
D(449) = 0.003250122;
D(450) = 0.003173828;
D(451) = 0.003082275;
D(452) = 0.002990723;
D(453) = 0.002899170;
D(454) = 0.002792358;
D(455) = 0.002685547;
D(456) = 0.002578735;
D(457) = 0.002456665;
D(458)= 0.002349854;
D(459)= 0.002243042;
D(460)= 0.002120972;
D(461)= 0.002014160;
D(462)= 0.001907349;
D(463)= 0.001785278;
D(464)= 0.001693726;
D(465)= 0.001586914;
D(466)= 0.001480103;
D(467)= 0.001388550;
D(468)= 0.001296997;
D(469)= 0.001205444;
D(470)= 0.001113892;
D(471)= 0.001037598;
D(472)= 0.000961304;
41
D(473)= 0.000885010;
D(474)= 0.000808716;
D(475)= 0.000747681;
D(476)= 0.000686646;
D(477)= 0.000625610;
D(478)= 0.000579834;
D(479)= 0.000534058;
D(480)= 0.000473022;
D(481)= 0.000442505;
D(482) = 0.000396729;
D(483) = 0.000366211;
D(484) = 0.000320435;
D(485) = 0.000289917;
D(486) = 0.000259399;
D(487) = 0.000244141;
D(488) = 0.000213623;
D(489) = 0.000198364;
D(490)= 0.000167847;
D(491)= 0.000152588;
D(492)= 0.000137329;
D(493)= 0.000122070;
D(494)= 0.000106812;
D(495)= 0.000106812;
D(496)= 0.000091553;
D(497)= 0.000076294;
D(498)= 0.000076294;
D(499)= 0.000061035;
D(500)= 0.000061035;
D(501)= 0.000045776;
D(502)= 0.000045776;
D(503)= 0.000030518;
D(504)= 0.000030518;
D(505)= 0.000030518;
D(506)= 0.000030518;
D(507)= 0.000015259;
D(508)= 0.000015259;
D(509)= 0.000015259;
D(510)= 0.000015259;
D(511)= 0.000015259;
D(512)= 0.000015259;